<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/x-red" data-help-name="mqtt in">
<p>MQTTブローカに接続し、指定したトピックのメッセージをサブスクライブ(購読)します。</p>
    <h3>出力</h3>
    <dl class="message-properties">
       <dt>payload <span class="property-type">文字列 | バッファ</span></dt>
       <dd>バイナリバッファでない場合は文字列</dd>
       <dt>topic <span class="property-type">文字列</span></dt>
       <dd>MQTTのトピック。/を階層の区切りに使用する</dd>
       <dt>qos <span class="property-type">数値</span> </dt>
       <dd>0: 最大1度到着, 1: 一度以上到着, 2: 1度のみ到着</dd>
       <dt>retain <span class="property-type">真偽値</span></dt>
       <dd>真の場合、メッセージを保持。メッセージが古い値の場合があります。</dd>
    </dl>
    <h3>詳細</h3>
    <p>購読トピックにはMQTTのワイルドカード(+: 1レベル, #: 複数レベル)を含めることができます。</p>
    <p>このノードの利用のためには、MQTTブローカへの接続設定が必要です。この設定は鉛筆アイコンをクリックすることで行えます。</p>
    <p>MQTT(inおよびout)ノードはブローカへの接続設定を必要に応じて共有できます。</p>
</script>

<script type="text/x-red" data-help-name="mqtt out">
    <p>MQTTブローカに接続し、メッセージをパブリッシュ(発行)します。</p>
    <h3>入力</h3>
    <dl class="message-properties">
       <dt>payload <span class="property-type">文字列 | バッファ</span></dt>
       <dd>多くの場合単純なテキスト形式のペイロードが使われますが、バイナリバッファを発行することも可能です。</dd>

       <dt class="optional">topic <span class="property-type">文字列</span></dt>
       <dd>発行対象のMQTTトピック</dd>

       <dt class="optional">qos <span class="property-type">数値</span></dt>
       <dd>0: 最大1度到着, 1: 一度以上到着, 2: 1度のみ到着。デフォルトは0です。</dd>

       <dt class="optional">retain <span class="property-type">真偽値</span></dt>
       <dd>真の場合、メッセージをブローカに保持します。デフォルトは偽です。</dd>
    </dl>
    <h3>詳細</h3>
    <p><code>msg.payload</code>を発行するメッセージのペイロードとして用います。ペイロードがオブジェクトの場合、送信の際にJSON文字列に変換します。ペイロードがバイナリバッファの場合、そのまま送信します。</p>
    <p>発行に利用するトピックはノードに設定するか、もしくは、<code>msg.topic</code>で指定します。</p>
    <p>同様に、QoSとretainもノードの設定、もしくは、ノードの設定が空の場合には、それぞれ<code>msg.qos</code>および<code>msg.retain</code>で指定できます。以前ブローカに保存したトピックをクリアするには、retainフラグを設定して当該トピックにからのメッセージを発行します。</p>
    <p>このノードの利用のためには、MQTTブローカへの接続設定が必要です。この設定は鉛筆アイコンをクリックすることで行えます。</p>
    <p>MQTT(inおよびout)ノードはブローカへの接続設定を必要に応じて共有できます。</p>
</script>

<script type="text/x-red" data-help-name="mqtt-broker">
    <p>MQTTブローカへの接続設定</p>
    <p>ブローカへの接続設定を作成します。設定は<code>MQTT In</code>および<code>MQTT Out</code>ノードで再利用できます。</p>
    <p>ノードにクライアントIDを設定しておらずセッションの初期化を設定している場合、ランダムなクライアントIDを生成します。クライアントIDを設定する場合、接続先のブローカで一意となるようにしてください。</p>
    <h4>Birthメッセージ</h4>
    <p>接続を確立した際に、設定したトピックに対して発行するメッセージ</p>
    <h4>Willメッセージ</h4>
    <p>予期せず接続が切断された場合にブローカが発行するメッセージ</p>
    <h4>WebSocket</h4>
    <p>WebSocketによる接続を行うように設定できます。WebSocketを利用するには、サーバフィールドに接続先のURIを完全な形式で記述します。以下に例を示します。</p>
    <pre>ws://example.com:4000/mqtt</pre>

</script>
